/*
 *  Source.h
 *  Ray Tracing
 *
 *  Classe de la source lumineuse. Genere la lumiere.
 *
 *  Created by Jean-Marc Comby + Romain Dequesne on Mon Mar 29 2004.
 *  Copyright (c) 2004. All rights reserved.
 *
 */
#ifndef _SOURCE_H
#define _SOURCE_H

#include "Lumiere.hpp"

//#include "Couleur.hpp"
//#include "Coord.hpp"

/**
 * Classe qui implémente une source de lumière ponctuelle simple. La
 * Source est définie par sa Couleur et par sa position.
 *
 * @author Jean-Marc Comby + Romain Dequesne
 * @author Johan "Solo" Luisier
 *
 * @date 29 Mars 2004
 */
class Source : public Lumiere
{	
 public:
  // Constructeur et destructeur
  Source(const Couleur& rvb = Couleur(), const Coord& xyz = Coord(),
	 const EnumSource& type = srcPonctuelle);
  Source(const Source& src);
  virtual ~Source(); // Destructeur
	
  // Methode get
  const Couleur& color() const; // renvoi la couleur de la source
  virtual const Coord& position() const; // renvoi la position de la source
  virtual double attenuation(const Coord& coord) const;
 protected:
  /**
   * Position de la source lumineuse.
   */
  Coord Position;
};

#endif
